package model

import (
	"fmt"
	"time"
)

type Discuss struct {
	Uid int `json:"uid"`
	Context string `json:"context"`
}

type Post struct {
	// PostId int `json:"postId"` auto increment
	Content string `json:"content"`
	TagId int `json:"tagId"`
	Config string `json:"config"`
	PostTime string `json:"postTime"`
	UserId int `json:"userId"`
}

type User struct {
	// gorm.Model
	// UserId int `json:"userId"` auto increment
	Username string `json:"userName"`
	Password string `json:"password"`
	UserTime string `json:"userTime"`
	NanoId     int   `json:"nanoId"`
}

type Tag struct {
	TagId int `json:"tagId"`
	Detail string `json:"detail"`
}

type Echart struct {
	ChartId int `json:"chartId"`
	Config string `json:"config"`
	TagId int `json:"tagId"`
	Tag string `json:"tag"`
	ImgUrl string `json:"imgUrl"`
}

// template /////////////////////////////////////////////



type Car struct {
	Cno   string `json:"cno"`		// 车牌号
	Csize int    `json:"csize"` 	// 座位数
	Cid   int    `json:"cid"` 		// 公司id
	Rid   int    `json:"rid"` 		// 所在线路
}

type Route struct {
	Rid  int    `json:"rid"`
	// Lid  int    `json:"lid"`
	Rname string `json:"rname"`
}

type Company struct {
	Cid  int    `json:"cid"`
	Name string `json:"name"`
}

type Vioclass struct {
	Vtype  int    `json:"vtype"`
	Score  int    `json:"score"`
	Vname string `json:"vname"`
}


// 员工基本信息
type Worker struct {
	Id   int    `json:"id"`
	Name string `json:"name"`
	Sex  string `json:"sex"`
	Role int    `json:"role"`
}


type Driver struct {
	Id int `json:"id"`
	Name string ` json:"name"`
	Sex string `json:"sex"`
	Role int `json:"role"`
	Tid int `json:"tid"`
	Rid int `json:"rid"`
}

type TeamInfo struct {
	Tid int `json:"tid"` 	// 车队编号
	Cid int `json:"cid"` 	// 所在公司id
	Cname string `json:"name"` 	// 所在公司名称
	Lid int `json:"lid"` 	 	// 队长id
	Lname string `json:"lname"` // 队长名字
	Sex string `json:"sex"` 	// 队长性别
}

type TeamMembers struct {
	Id int `json:"id"`
	Name string `json:"name"`
	Sex string `json:"sex"`
	Tid int `json:"tid"`
	Rname string `json:"rname"`
	Role int `json:"role"`
}

// 测试FK
type DateTime time.Time
func (t DateTime) MarshalJSON() ([]byte, error) {
	var stamp = fmt.Sprintf("\"%s\"", time.Time(t).Format("2006-01-02 15:04:05"))
	return []byte(stamp), nil
}
func (t DateTime) Format() (string) {
	return  time.Time(t).Format("2006-01-02 15:04:05")
}
type VioRecord struct {
	Vid   int       `json:"vid"` 		// 违章事件id
	Id    int       `json:"id"` 		// 肇事者id
	Datetime  string  `json:"date"` 	// 事件时间
	Site  string    `json:"site"` 		// 事件地点
	Vtype int       `json:"vtype"` 		// 事件类型
	Rid   int       `json:"rid"` 		// 事件线路id

	// friendlyVios exclusive
	Tid int `json:"tid"` 			// 肇事者车队
	Cno string `json:"cno"` 			// 车牌号
	Name string `json:"name"` 			// 肇事者姓名
	Vname string `json:"vname"` 		// 违章类型名称
	Rname string `json:"rname"` 		// 违章地点
}

type TeamVios struct {
	Tid   string 		// 肇事车队
	Cnt   string 		// 违章次数
	Vname string 		// 违章类型
}

